package Hot100;

/**
 * @author zhangmin
 * @create 2021-12-23 10:04
 */
public class rotate48 {
    /**48. 旋转图像
     * 给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像，这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。
     * 先对角交换，再左右交换
     * */
    public void rotate(int[][] matrix) {
        int m=matrix.length,n=matrix[0].length;
        //先对角线交换
        for (int i = 0; i < m; i++) {
            for (int j = i+1; j < n; j++) {
                int temp= matrix[i][j];
                matrix[i][j]=matrix[j][i];
                matrix[j][i]=temp;
            }
        }
        //再左右交换
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n/2; j++) {
                int temp=matrix[i][j];
                matrix[i][j]=matrix[i][n-j-1];
                matrix[i][n-j-1]=temp;
            }
        }
    }

}
